Cómo encontrar el nombre usando id. significa iterar objeto. crear una función const searchName =()=>{} supongamos que si pasa 3 en la función, entonces me gustaría mostrar ... cuál es el nombre del usuario como este
const data = [{ "service": [ "BUSINESS", "LEGAL", "FINANCE", "ADVERTISEMENT" ], "service1": [ { "id": 1, "name": "a" }, { "id": 2, "name": "b" }, { "id": 3, "name": "c" }, { "id": 4, "name": "d" }, ], "service2": [ { "id": 5, "name": "e" }, { "id": 6, "name": "f" }, { "id": 7, "name": "g" }, { "id": 8, "name": "h" }, ], "service3": [ { "id": 9, "name": "i" }, { "id": 10, "name": "j" }, { "id": 11, "name": "k" }, { "id": 12, "name": "l" }, ], "service4": [ { "id": 13, "name": "m" }, { "id": 14, "name": "n" }, { "id": 15, "name": "o" }, { "id": 16, "name": "p" }, ], } ] supongamos que el usuario pasa 3 , así que quiero devolver { "id": 3, "name": "c" } así. Estoy tratando de iterar esto y encontrar el nombre del usuario por id, pero no entendí esta iteración, así que necesito su ayuda.
verifique este código.... Ingrese cualquier número de identificación
const data = [{ "service": [ "BUSINESS", "LEGAL", "FINANCE", "ADVERTISEMENT" ], "service1": [ { "id": 1, "name": "a" }, { "id": 2, "name": "b" }, { "id": 3, "name": "c" }, { "id": 4, "name": "d" }, ], "service2": [ { "id": 5, "name": "e" }, { "id": 6, "name": "f" }, { "id": 7, "name": "g" }, { "id": 8, "name": "h" }, ], "service3": [ { "id": 9, "name": "i" }, { "id": 10, "name": "j" }, { "id": 11, "name": "k" }, { "id": 12, "name": "l" }, ], "service4": [ { "id": 13, "name": "m" }, { "id": 14, "name": "n" }, { "id": 15, "name": "o" }, { "id": 16, "name": "p" }, ], }] var itemobj = '' const searchName =(val)=>{ console.log('searchname') data.map((item)=>{ let obj = Object.keys(item) obj.map((data)=>{ let inrdata = item[data] inrdata.map((initem)=>{ let lastdata = initem.id===val?itemobj=initem:null }) }) }) } searchName(3) console.log(itemobj)function searchName(id) { let result = null; for (const [key, value] of Object.entries(data)) { if (key === "service") continue result = value.filter(obj => { return obj.id === id }) if (result) break } return result ? result[0] : null }Repaso las claves, solo omito la de "servicio" ya que no es relevante. Luego, filtro la matriz "servicio N ", devolverá una matriz de objetos (solo uno si se encuentra, una matriz vacía si no se encuentra).
Si se encuentra, dejamos de iterar.
Luego devolvemos el primer (y lógicamente el único elemento) o nulo si no se encuentra